#ifndef LIST_H
#define LIST_H

struct node;
typedef struct node* Ptrlist;
typedef Ptrlist list;
typedef Ptrlist position;

void deleteitem(int x, list l);
void deleteList(list l);
list createList(int length, int* a);
int getListLength(list l);

void printList(list l);
list makeEmpty(list l);
bool isEmpty(list l);
bool isLast(position p,list l);
position find(int x, list l);

position findPrevious(int x, list l);
void insert(int x, list l, position p);
position header(list l);
position first(list l);
position advance(position p);
int retrieve(position p);
list get_operation_or(list l1, list l2);
list get_operation_and(list l1, list l2);
#endif